﻿using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using QuartzServices.Domain.DomainModels;

namespace QuartzServices.Infrastructure.Mappings
{
    internal class WeixinOfficialAccountMap : IEntityTypeConfiguration<WeixinOfficialAccountModel>
    {
        public void Configure(EntityTypeBuilder<WeixinOfficialAccountModel> entity)
        {

            entity.HasKey(e => e.Id).IsClustered(false);

            entity.ToTable("WEIXIN_OFFICIAL_ACCOUNT", tb => tb.HasComment("微信-公众号"));

            entity.Property(e => e.Id)
                .HasMaxLength(50)
                .IsUnicode(false)
                .HasDefaultValueSql("(newid())")
                .HasComment("公众号主键")
                .HasColumnName("ID");
            entity.Property(e => e.AccessToken)
                .HasMaxLength(200)
                .IsUnicode(false)
                .HasComment("AccessToken")
                .HasColumnName("ACCESS_TOKEN");
            entity.Property(e => e.ApiUrl)
                .HasMaxLength(1000)
                .IsUnicode(false)
                .HasComment("中转URI")
                .HasColumnName("API_URL");
            entity.Property(e => e.AppId)
                .HasMaxLength(200)
                .IsUnicode(false)
                .HasComment("AppId")
                .HasColumnName("APP_ID");
            entity.Property(e => e.AppSecret)
                .HasMaxLength(200)
                .IsUnicode(false)
                .HasComment("AppSecret")
                .HasColumnName("APP_SECRET");
            entity.Property(e => e.Category)
                .HasComment("类别")
                .HasColumnName("CATEGORY");
            entity.Property(e => e.CreateBy)
                .HasMaxLength(50)
                .IsUnicode(false)
                .HasComment("创建用户")
                .HasColumnName("CREATE_BY");
            entity.Property(e => e.CreateOn)
                .HasComment("创建日期")
                .HasColumnType("datetime")
                .HasColumnName("CREATE_ON");
            entity.Property(e => e.CreateUserId)
                .HasMaxLength(50)
                .IsUnicode(false)
                .HasComment("创建用户主键")
                .HasColumnName("CREATE_USER_ID");
            entity.Property(e => e.DeleteMark)
                .HasDefaultValueSql("((0))")
                .HasComment("删除标记")
                .HasColumnName("DELETE_MARK");
            entity.Property(e => e.Enabled)
                .HasComment("是否启用")
                .HasColumnName("ENABLED");
            entity.Property(e => e.IsDefault)
                .HasComment("当前操作号")
                .HasColumnName("IS_DEFAULT");
            entity.Property(e => e.ModifiedBy)
                .HasMaxLength(50)
                .IsUnicode(false)
                .HasComment("修改用户")
                .HasColumnName("MODIFIED_BY");
            entity.Property(e => e.ModifiedOn)
                .HasComment("修改日期")
                .HasColumnType("datetime")
                .HasColumnName("MODIFIED_ON");
            entity.Property(e => e.ModifiedUserId)
                .HasMaxLength(50)
                .IsUnicode(false)
                .HasComment("修改用户主键")
                .HasColumnName("MODIFIED_USER_ID");
            entity.Property(e => e.OfficialCode)
                .HasMaxLength(200)
                .IsUnicode(false)
                .HasComment("代码")
                .HasColumnName("OFFICIAL_CODE");
            entity.Property(e => e.OfficialId)
                .HasMaxLength(200)
                .IsUnicode(false)
                .HasComment("公众号ID")
                .HasColumnName("OFFICIAL_ID");
            entity.Property(e => e.OfficialKey)
                .HasMaxLength(500)
                .IsUnicode(false)
                .HasComment("密钥")
                .HasColumnName("OFFICIAL_KEY");
            entity.Property(e => e.OfficialName)
                .HasMaxLength(200)
                .IsUnicode(false)
                .HasComment("公众号名称")
                .HasColumnName("OFFICIAL_NAME");
            entity.Property(e => e.OfficialPhoto)
                .HasMaxLength(1000)
                .IsUnicode(false)
                .HasComment("照片")
                .HasColumnName("OFFICIAL_PHOTO");
            entity.Property(e => e.Remark)
                .HasMaxLength(1000)
                .IsUnicode(false)
                .HasComment("备注")
                .HasColumnName("REMARK");
            entity.Property(e => e.Token)
                .HasMaxLength(500)
                .IsUnicode(false)
                .HasComment("TOKEN")
                .HasColumnName("TOKEN");
        }
    }
}
